package com.jdk.demo.io.半写;

import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

	public static void main(String[] args) throws Exception {
		ServerSocket serverSocket = new ServerSocket(8088);
		Socket socket = serverSocket.accept();
		OutputStream out = socket.getOutputStream();
		out.write("123".getBytes());
		// 作用是禁用此套接字的输出流，对于tcp套接字，任何以前写入的数据都将被发送，并且后跟tcp的正常连接终止序列。如果在套接字上调用shutdownOutput方法后写入套接字输出流，
		// 则该流将抛出IOException。调用此方法的一端进入半写状态，也就是此端不能获得输出流。但对端却能获得输出流。一端能写，另一端不能写，称为半写
		socket.shutdownOutput();
		socket.getOutputStream(); // 出现异常: java.net.SocketException: Socket output is shutdown
		// out.write("456".getBytes()); // 出现异常

		socket.close();
		serverSocket.close();
	}

}
